package com.michael.demo.springcloud.alibaba.seata.storage.controller;


import com.michael.demo.springcloud.alibaba.seata.storage.service.StorageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Random;

/**
 * 类功能描述:
 * <pre>
 *   xxxx
 * </pre>
 *
 * @author Michael
 * @version 1.0
 * @date 2021/04/01 17:00
 */
@Slf4j
@RestController
@RequestMapping("/storage")
public class StorageController {

    @Autowired
    private StorageService accountService;

    @PostMapping("/deduct/{code}/{count}")
    String deduct(@PathVariable("code") String code, @PathVariable("count") Integer count) {
        boolean result = accountService.deductByCode(code, count);

        //Random random = new Random();
        //if (random.nextBoolean()) {
        //    throw new RuntimeException("StorageController 模拟异常");
        //}
        return result ? "SUCCESS" : "FAILURE";
    }

    @PostMapping("/test1/{str1}/{str2}")
    String test1(@PathVariable("str1") String str1, @PathVariable("str2") String str2) {
        return str1 + str2;
    }

    @PostMapping("/test2/{str1}/{str2}")
    String test2(@PathVariable("str1") String str1, @PathVariable("str2") Integer str2) {
        return str1 + str2;
    }

    @GetMapping("/test3/{str1}/{str2}")
    String test3(@PathVariable("str1") String str1, @PathVariable("str2") String str2) {
        return str1 + str2;
    }

    @GetMapping("/test4/{str1}/{str2}")
    String test4(@PathVariable("str1") String str1, @PathVariable("str2") Integer str2) {
        return str1 + str2;
    }

}
